package Map;
/*
 * eclipse多行注释：shift+ctrl+/
 */
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * 需求：实现学号和姓名这样对应关系的数据存储
 * 为了体现这样有对应关系的数据，java提供了一种专门用于存储对应关系的集合，Map
 * Map：将键映射到值的对象。一个映射不能包含重复的键，每个键最多只能映射到一个值
 * MapheCollection有什么区别？
 * 		Map：十一个双列集合，常用于处理对应关系的数据，key是不可以重复的，
 * 		Collection：是单列集合，Collection有不同的字体系，有的允许重复有索引有序，有点不允许重复而且无序，
 * Map的常用功能：
 * 		映射功能： V put(K key, V value) 
 * 
 * 一对一：一个学号对应一个姓名
 */
public class MapDemo {
	public static void main(String[] args) {
		//V put(K key, V value):就是将key映射到value，如果key存在，则覆盖value，并返回原来的value
		//如果key不存在，则返回null
		
		Map<String,String> map = new HashMap<String,String>();
//		System.out.println(map.put("itcas001", "张三"));
//		System.out.println(map.put("itcas002", "李四"));
//		System.out.println(map.put("itcas003", "王五"));
		map.put("itcas001", "张三");
		map.put("itcas002", "李四");
		map.put("itcas003", "王五");
		//boolean containsKey(Object key) 
//		System.out.println(map.containsKey("itcas003"));
		//boolean containsValue(Object value)  
//		System.out.println(map.containsValue("王五"));
		// boolean isEmpty() :判断是否是有对应关系
		
		// V remove(Object key) :如果存在一个键的映射关系，则将其从此映射中移除（可选操作）。如果没有则返回null
		 
//		System.out.println(map.isEmpty());
		System.out.println(map);
		/*
		 * Set<String> keys = map.keySet();
		 * 
		 * for (String key : keys) { String value = map.get(key);
		 * System.out.println(key); System.out.println(value); }
		 */
		
		Set<Map.Entry<String, String>> entrys = map.entrySet();
		for (Map.Entry<String, String> entry : entrys) {
			String key = entry.getKey();
			String value = entry.getValue();
			System.out.println("key:"+key+"---"+"value:"+value);
		}
	}
}
